import axios from 'axios'
import { useUserStore } from '@/stores/user'
// import { ElMessage } from 'element-plus'
import { baseURL } from '@/utils/config'
// import { isCheckTimeout } from '@/utils/auth'
import { setTimeStamp } from '@/utils/auth'
// import Cookies from "js-cookie"
const request = axios.create({
  // baseURL: import.meta.env.VITE_APP_BASE_API,
  baseURL,
  timeout: 120000
  // withCredentials: true // 携带 Cookie,
})

// 请求拦截器
request.interceptors.request.use(
  (config) => {
    const userStore = useUserStore()
    // 2. 按照后端的要求拼接token数据
    const token = userStore.userInfo.token
    if (token) {
      // if (isCheckTimeout()) {
      //   // 登出操作
      //   userStore.clearUserInfo()
      //   ElMessage({
      //     message: '登陆已过期，请重新登陆',
      //     type: 'warning'
      //   })
      //   return Promise.reject(new Error('登录已过期，请重新登录！'))
      // }
      // 保存登录时间
      setTimeStamp()
      config.headers.Authorization = `${token}`
    }

    // console.log(config)
    // config 接口请求的配置信息
    // 在这个位置需要统一的去注入token 如果token存在 注入token 添加到请求头参数中
    return config // 必须返回配置
  },
  (error) => {
    // 报错的是定义前置拦截器时候抛出一个错误信息
    return Promise.reject(error)
  }
)
// 响应拦截器
request.interceptors.response.use(
  (response) => {
    return response.data
  },
  (error) => {
    return Promise.reject(error)
  }
)
export default request
